#ifndef RANGE_H_
#define RANGE_H_


class Range
{
public:
    Range(const double& min_i, const double& max_i);
    ~Range(){}

    virtual bool isValid(const double para_i) const;

protected:
    double min_m;
    double max_m;
    
};  

class LopenRopenRange: public Range
{
public:
    LopenRopenRange(const double& min_i, const double& max_i);

    virtual bool isValid(const double para_i) const;
};

class LopenRcloseRange: public Range
{
public:
    LopenRcloseRange(const double& min_i, const double& max_i);

    virtual bool isValid(const double para_i) const;
};

class LcloseRopenRange: public Range
{
public:
    LcloseRopenRange(const double& min_i, const double& max_i);

    virtual bool isValid(const double para_i) const;
};

class LcloseRcloseRange: public Range
{
public:
    LcloseRcloseRange(const double& min_i, const double& max_i);

    virtual bool isValid(const double para_i) const;
};


#endif /* RANGE_H_ */ 
